The present invention relates generally to circuit design, and more particularly, to electric-based designs with distributed input/output modules.
In a system including a distributed control arrangement, a serial communication device is typically used to interface to the remote I/O (Input/Output) modules or nodes. These I/O modules are often based on readily available standard products from a number of different companies, as is well known. A problem is often encountered, however, when the number of required Digital Inputs and/or Digital Outputs exceeds the number of available I/O in a standard device. This necessitates inundating a module with multiple I/O devices, specifying a more expensive high I/O count device, or designing a custom circuit. When the required rate of change of inputs in such a module is low compared to the rate at which the data can be transmitted to the consumer of the digital input data, a method for expanding the Digital I/O capabilities for such a standard device is required.
A standard Digital I/O device has a limited number of I/O lines, it may also generate READ and WRITE control lines in conjunction with a bi-directional data bus to interface with external write latches and READ buffers. One common method for I/O data transfer is to add more I/O modules. Such a solution, however, is very costly.
The disadvantages associated with current I/O systems have made it apparent that a new technique for expanding the I/O on I/O limited devices is needed. The new technique should substantially provide a low cost solution while maintaining efficient data transfer. The present invention is directed to these ends.
In accordance with one aspect of the invention, an I/O system includes a Digital Device used in an application where multiple digital I/O are needed. The system further includes a Digital I/O Expansion Mechanism, electrically coupled to the Digital Device, including a first input bank, a FIFO, and an I/O line. The Digital I/O Expansion Mechanism is adapted to sample a first value of an initialized first input bank and detect a change in the input bank. The Digital I/O Expansion Mechanism is further adapted to store the state of a data bit of the input bank and a bank identifier in the FIFO, sample thus the data bit via a first READ cycle, drive the digital device a next data entry from the FIFO, and sample substantially all digital inputs. The Digital I/O Expansion Mechanism is adapted to store any detected changes in the FIFO and transmit all values in the FIFO to the Digital Device during subsequent READ cycles. The Digital I/O Expansion Mechanism is adapted to transmit a last value read to the Digital Device, change a digital output when a first WRITE command occurs and the Digital Device explicitly selects the digital output to be set, and write an entire bank in response to a bit change. The Digital I/O Expansion Mechanism is then adapted to decode and latch the digital output until the digital output is overwritten via a second WRITE command to the output bank from the Digital Device.
In accordance with another aspect of the invention, a method for I/O data transfer includes sampling a first value of a first initialized input bank. When a change is detected, the FIFO stores a state of a data bit of the input bank and a bank identifier. An expansion mechanism I/O line is sampled via a first READ cycle, and the I/O line is driven with a changed data entry from the FIFO. Substantially all digital inputs are sampled and the FIFO stores any detected changes. All values in the FIFO are transmitted to a Digital Device during a second READ cycle, and a last value read is also transmitted to the Digital Device. A digital output is changed when a first WRITE command occurs and the Digital Device explicitly selects the digital output to be set. An entire bank is written in response to a bit change. The expansion mechanism digital output is then decoded and latched until the expansion mechanism digital output is overwritten via a subsequent WRITE command to the input bank from the Digital Device.
The advantages of this application are that all the subsystem digital inputs and outputs can be consolidated to one Digital Device for efficient and cost effective performance. The method of expanding of a finite number of digital I/O lines eliminates the need to require multiple Digital I/O devices.
Other objects and advantages of the present invention will become apparent upon the following detailed description and appended claims, and upon reference to the accompanying drawings.